package ExamQuestions;

public class Question2 {
    public static void main(String[] args) {
        String result=addStrings("456","77");
        System.out.println(result);
    }
    public static String addStrings(String num1, String num2) {
        int i=num1.length()-1;
        int j=num2.length()-1;
        int add=0;                 //用来相加超过10的数字
        StringBuilder s1=new StringBuilder();
        while(i>=0||j>=0||add!=0) {                        //为什么add要不为0，是因为可能是两个一位数的数字相加，这时候add不为0,那么十位数就是1
            int x=i>=0?num1.charAt(i--)-'0':0;             //通过ascll码值，算出该位置的数字
            int y=j>=0?num2.charAt(j--)-'0':0;             //当任意一个字符串遍历完成后，与另一个字符串相同位置的值就是0
            int result=x+y+add;
            s1.append(result%10);
            add=result/10;                                //除10是因为满10进1
        }
        s1.reverse();                                     //因为字符串的append是往后加的，所以要将结果翻转过来
        return s1.toString();
    }
}
